rbtree: Simplify code
authorBenjamin Otte <otte@redhat.com>
Thu, 5 Mar 2020 05:51:32 +0000 (06:51 +0100)
committerBenjamin Otte <otte@redhat.com>
Thu, 5 Mar 2020 06:59:05 +0000 (07:59 +0100)
This makes it easier to understand for gcc (and hopefully humans, too)
that by rotating we essentially just swap `node` and `p`.

gtk/gtkrbtree.c

index 219222b1e8aedd3ea702c8b0f1a1f3ae9237bbdd..55914d7cb6422299d468c73e0715593a5f96040c 100644 (file)
@@ -381,10 +381,9 @@ gtk_rb_tree_insert_fixup (GtkRbTree *tree,
              if (node == p->right)
                {
                  /* make node a left child */
-                 node = p;
-                 gtk_rb_node_rotate_left (tree, node);
-                  p = parent (node);
-                  pp = parent (p);
+                 gtk_rb_node_rotate_left (tree, p);
+                 p = node;
+                  node = p->left;
                }
              /* recolor and rotate */
               set_black (p);
@@ -410,10 +409,9 @@ gtk_rb_tree_insert_fixup (GtkRbTree *tree,
               /* uncle is black */
              if (node == p->left)
                {
-                 node = p;
-                 gtk_rb_node_rotate_right (tree, node);
-                  p = parent (node);
-                  pp = parent (p);
+                 gtk_rb_node_rotate_right (tree, p);
+                 p = node;
+                  node = p->right;
                }
              set_black (p);
              set_red (pp);